package com.leetcode;

/**
 * 给你一个链表的头节点 head 和一个整数 val ，请你删除链表中所有满足 Node.val == val 的节点，并返回 新的头节点 。
 *
 * @author sunfeng
 * @date 2021/04/23 18:06
 **/
public class Solution203 {
    public ListNode removeElements(ListNode head, int val) {

        ListNode temp = new ListNode();
        if (head == null){
            return null;
        }

        while (head.val == val) {
            head = head.next;
            if (head == null) {
                break;
            }
        }

        temp.next = head;
        while (temp.next != null) {
            if (temp.next.val == val) {
                temp = temp.next.next;
            } else {
                temp = temp.next;
            }
        }

        return head;
    }
}
